home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Day Cry
/
Day Cry CD.bin
/
oh_towns
/
taropyon
/
he386
/
ccisrc
/
tg300me.c
< prev
next >
Wrap
Text File
|
1994-09-20
|
16KB
|
645 lines
/*************************************************************************
* TG300 MULTI EFFECT
*************************************************************************/
/*************************************************************************
* CHORUS TYPE
*-------------------------------------------------------------------------
* exTG300_chorusType(type)
* type üc 0ü`7
*************************************************************************/
int exTG300_chorusType( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
{
char dat[32];
int v;
if ( argc != 1 )
{
_ERR: MM_setErrMsg(sqr,"TG300 \"CHORUS TYPE\" error!");
return(ERR);
}
v = atoi(argv[0]);
if ( v < 0 || v > 7 )
goto _ERR;
dat[0] = v;
return tg300_genMML( sqr, bufSiz, buf, 0x010000, 1, dat );
}
/*************************************************************************
* VARIATION TYPE
*-------------------------------------------------------------------------
* exTG300_variationType(type)
* type üc 0ü`25
*************************************************************************/
int exTG300_variationType( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
{
char dat[32];
int v;
if ( argc != 1 )
{
_ERR: MM_setErrMsg(sqr,"TG300 \"VARIATION TYPE\" error!");
return(ERR);
}
v = atoi(argv[0]);
if ( v < 0 || v > 0x19 )
goto _ERR;
dat[0] = v;
return tg300_genMML( sqr, bufSiz, buf, 0x010001, 1, dat );
}
/*************************************************************************
* Pre-VARIATION TYPE
*-------------------------------------------------------------------------
* exTG300_preVariationType(type)
* type üc 0ü`4
*************************************************************************/
int exTG300_preVariationType( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
{
char dat[32];
int v;
if ( argc != 1 )
{
_ERR: MM_setErrMsg(sqr,"TG300 \"Pre-VARIATION TYPE\" error!");
return(ERR);
}
v = atoi(argv[0]);
if ( v < 0 || v > 4 )
goto _ERR;
dat[0] = v;
return tg300_genMML( sqr, bufSiz, buf, 0x010002, 1, dat );
}
/*************************************************************************
* Pre-REVERB TYPE
*-------------------------------------------------------------------------
* exTG300_preReverbType(type)
* type üc 0ü`5
*************************************************************************/
int exTG300_preReverbType( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
{
char dat[32];
int v;
if ( argc != 1 )
{
_ERR: MM_setErrMsg(sqr,"TG300 \"Pre-REVERB TYPE\" error!");
return(ERR);
}
v = atoi(argv[0]);
if ( v < 0 || v > 5 )
goto _ERR;
dat[0] = v;
return tg300_genMML( sqr, bufSiz, buf, 0x010003, 1, dat );
}
/*************************************************************************
* REVERB TYPE
*-------------------------------------------------------------------------
* exTG300_reverbType(type)
* type üc 0ü`11
*************************************************************************/
int exTG300_reverbType( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
{
char dat[32];
int v;
if ( argc != 1 )
{
_ERR: MM_setErrMsg(sqr,"TG300 \"REVERB TYPE\" error!");
return(ERR);
}
v = atoi(argv[0]);
if ( v < 0 || v > 0x0B )
goto _ERR;
dat[0] = v;
return tg300_genMML( sqr, bufSiz, buf, 0x010004, 1, dat );
}
/*************************************************************************
* EFFECT INPUT
*-------------------------------------------------------------------------
* exTG300_effectInput(0,rev,cho,var)
*-------------------------------------------------------------------------
* exTG300_effectInput(type,input)
* type üc 1:Reverb
* 2:Chorus
* 3:Variation
* input üc 0 ü`127
*************************************************************************/
int exTG300_effectInput( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
{
char dat[32];
size_t adr, siz;
int rev, cho, var;
if ( argc < 2 )
{
_ERR: MM_setErrMsg(sqr,"TG300 \"Effect Input\" error!");
return(ERR);
}
switch ( atoi(argv[0]) )
{
case 0:
if ( argc != 4 )
goto _ERR;
rev = atoi(argv[1]); if ( rev < 0 || rev > 127 ) goto _ERR;
cho = atoi(argv[2]); if ( cho < 0 || cho > 127 ) goto _ERR;
var = atoi(argv[3]); if ( var < 0 || var > 127 ) goto _ERR;
dat[0] = rev;
dat[1] = cho;
dat[2] = var;
adr = 0x010005;
siz = 3;
break;
case 1:
rev = atoi(argv[1]);
if ( rev < 0 || rev > 127 )
goto _ERR;
dat[0] = rev;
adr = 0x010005;
siz = 1;
break;
case 2:
cho = atoi(argv[1]);
if ( cho < 0 || cho > 127 )
goto _ERR;
dat[0] = cho;
adr = 0x010006;
siz = 1;
break;
case 3:
var = atoi(argv[1]);
if ( var < 0 || var > 127 )
goto _ERR;
dat[0] = var;
adr = 0x010007;
siz = 1;
break;
default:
goto _ERR;
}
return tg300_genMML( sqr, bufSiz, buf, adr, siz, dat );
}
/*************************************************************************
* DRY Level
*-------------------------------------------------------------------------
* exTG300_dryLevel(level)
* level üc 0ü`127
*************************************************************************/
int exTG300_dryLevel( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
{
char dat[32];
int v;
if ( argc != 1 )
{
_ERR: MM_setErrMsg(sqr,"TG300 \"DRY level\" error!");
return(ERR);
}
v = atoi(argv[0]);
if ( v < 0 || v > 127 )
goto _ERR;
dat[0] = v;
return tg300_genMML( sqr, bufSiz, buf, 0x010008, 1, dat );
}
/*************************************************************************
* EFFECT RETURN
*-------------------------------------------------------------------------
* exTG300_effectReturn(0,rev,cho,var)
*-------------------------------------------------------------------------
* exTG300_effectReturn(type,input)
* type üc 1:Reverb
* 2:Chorus
* 3:Variation
* input üc 0 ü`127
*************************************************************************/
int exTG300_effectReturn( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
{
char dat[32];
size_t adr, siz;
int rev, cho, var;
if ( argc < 2 )
{
_ERR: MM_setErrMsg(sqr,"TG300 \"Effect Return\" error!");
return(ERR);
}
switch ( atoi(argv[0]) )
{
case 0:
if ( argc != 4 )
goto _ERR;
rev = atoi(argv[1]); if ( rev < 0 || rev > 127 ) goto _ERR;
cho = atoi(argv[2]); if ( cho < 0 || cho > 127 ) goto _ERR;
var = atoi(argv[3]); if ( var < 0 || var > 127 ) goto _ERR;
dat[0] = rev;
dat[1] = cho;
dat[2] = var;
adr = 0x010009;
siz = 3;
break;
case 1:
rev = atoi(argv[1]);
if ( rev < 0 || rev > 127 )
goto _ERR;
dat[0] = rev;
adr = 0x010009;
siz = 1;
break;
case 2:
cho = atoi(argv[1]);
if ( cho < 0 || cho > 127 )
goto _ERR;
dat[0] = cho;
adr = 0x01000A;
siz = 1;
break;
case 3:
var = atoi(argv[1]);
if ( var < 0 || var > 127 )
goto _ERR;
dat[0] = var;
adr = 0x01000B;
siz =1;
break;
default:
goto _ERR;
}
return tg300_genMML( sqr, bufSiz, buf, adr, siz, dat );
}
/*************************************************************************
* EFFECT SEND
*-------------------------------------------------------------------------
* exTG300_effectSend(0,var2cho,var2rev,cho2rev)
*-------------------------------------------------------------------------
* exTG300_effectReturn(type,send)
* type üc 1:var2cho
* 2:var2rev
* 3:cho2rev
* send üc 0 ü`127
*************************************************************************/
int exTG300_effectSend( char *sqr, size_t bufSiz, char *buf, int argc, char **argv )
{
char dat[32];
size_t adr, siz;
int var2cho, var2rev, cho2rev;
if ( argc < 2 )
{
_ERR: MM_setErrMsg(sqr,"TG300 \"Effect Send\" error!");
return(ERR);
}
switch ( atoi(argv[0]) )
{
case 0:
if (